home *** CD-ROM | disk | FTP | other *** search
- #include <Types.h>
- #include <Memory.h>
- #include <QuickDraw.h>
- #include <Packages.h>
- #include <Strings.h>
- #include <SysEqu.h>
- #include <ToolUtils.h>
- #include <Traps.h>
- #include "Wimpy.h"
-
- //changed this routine to C from pascal
- pascal char * testAddr(adr)
- Ptr adr;
- {
- #define applScratch 0xA78
- typedef unsigned long *lintPtr;
- unsigned long junk, savedJunk,oldErrHndlr;
- /* load err handler
- save old applScratch data
- put 1 at applScratch
- access address
- is applScratch is zero then
- error
- else
- nil
- restore old applScratch data
- unload err handler
- */
-
- oldErrHndlr = *(lintPtr)0x00000008;
- *(lintPtr)8 =(long)&(BusErrHandler);
-
- savedJunk = *(lintPtr)applScratch;
- *(lintPtr)applScratch = 1;
- (long)adr = (long)adr & 0xFE;
- junk = *(lintPtr)adr;
-
- if( *(lintPtr)applScratch == 0)
- return("Address is invalid.");
- else
- return(nil);
-
- *(lintPtr)applScratch = savedJunk;
- *(lintPtr)0x00000008 = oldErrHndlr;
- }